home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir43 / med300.zip / MEUTIL.CLA < prev    next >
Text File  |  1994-02-22  |  7KB  |  157 lines

  1.  
  2. !▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3. !█                                                                       █
  4. !█ MEUTIL.CLA                                                            █
  5. !█ Miscellaneous utility functions                                       █
  6. !█                                                                       █
  7. !█ Revision Number: 1                                                    █
  8. !█ Revision Date  : 22-Feb-94                                            █
  9. !█                                                                       █
  10. !█ Revision History                                                      █
  11. !█   1 Created                                                           █
  12. !█                                                                       █
  13. !▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  14.  
  15.              MEMBER('MEMOEDIT')
  16.  
  17. !─────────────────────────────────────────────────────────────────────────
  18. !                           Local Module Data
  19. !─────────────────────────────────────────────────────────────────────────
  20. _ALERTSW BYTE,EXTERNAL,NAME('_ALERTSW')          ! Clarion RTL alert flag
  21.  
  22.  
  23. ! ════════════════════════════════════════════════════════════════════════
  24. !                     Un-Alert a key or key range
  25. ! ════════════════════════════════════════════════════════════════════════
  26. UnAlert PROCEDURE( isKey1, isKey2 )
  27.  
  28.   CODE
  29.   IF OMITTED(2) THEN isKey2 = 0.                 ! Set default values
  30.   IF OMITTED(1) THEN isKey1 = 0.                 !
  31.   UnAlert(isKey1, isKey2)                        ! Call RTL procedure
  32.   RETURN
  33.  
  34.  
  35. ! ════════════════════════════════════════════════════════════════════════
  36. !               Determine whether a key has been ALERTED()
  37. ! ════════════════════════════════════════════════════════════════════════
  38. IsAlerted FUNCTION( isKey )
  39.  
  40.   CODE
  41.   FindAlert( isKey )                             ! Call RTL procedure
  42.   RETURN( _ALERTSW )                             ! Return global alert flag
  43.  
  44.  
  45. !═════════════════════════════════════════════════════════════════════════
  46. !                   Return larger of two integers
  47. !═════════════════════════════════════════════════════════════════════════
  48. ME_Max        FUNCTION( ilArg1, ilArg2 )
  49.  
  50.   CODE
  51.   IF (ilArg1 > ilArg2)                           !
  52.     RETURN( ilArg1 )                             !
  53.   ELSE                                           !
  54.     RETURN( ilArg2 )                             !
  55.   .                                              !
  56.  
  57.  
  58. !═════════════════════════════════════════════════════════════════════════
  59. !                   Return smaller of two integers
  60. !═════════════════════════════════════════════════════════════════════════
  61. ME_Min        FUNCTION( ilArg1, ilArg2 )
  62.  
  63.   CODE
  64.   IF (ilArg1 < ilArg2)                           !
  65.     RETURN( ilArg1 )                             !
  66.   ELSE                                           !
  67.     RETURN( ilArg2 )                             !
  68.   .                                              !
  69.  
  70.  
  71. !═════════════════════════════════════════════════════════════════════════
  72. !                        Get a string from user
  73. !═════════════════════════════════════════════════════════════════════════
  74. ME_Entry     FUNCTION( sMessage )
  75.  
  76.              ! Return:
  77. sInput       STRING(80)                          ! Returned string
  78.  
  79.              ! Locals:
  80. ubCol        BYTE                                !
  81. ubOne        BYTE(1)                             !
  82.  
  83.              ! Screens:
  84. wScreen          SCREEN(8,49),PRE(SCR),SHADOW,CUA,COLOR(112)
  85.                    !dimensions=25,80,25,80
  86.                    ROW(1,1)    STRING('┌─{47}┐')
  87.                    ROW(8,1)    STRING('└─{47}┘')
  88.                                REPEAT(6)
  89.                    ROW(2,1)      STRING('│')
  90.                    ROW(2,49)     STRING('│')
  91.                                .
  92. ssMessage          ROW(2,6)    STRING(@s38),COLOR(112)
  93.                    ROW(4,5)    ENTRY(@s40),USE(sInput),COLOR(48,78,120)
  94.                    ROW(6,13)   BUTTON('   &Ok   '),SHADOW,KEY(EnterKey),USE(?Ok),COLOR(23,71,24,31,79)
  95.                      COL(29)   BUTTON(' &Cancel '),SHADOW,KEY(EscKey),USE(?Cancel),COLOR(23,71,24,31,79)
  96.                  .
  97.  
  98.   CODE
  99.   sInput = ''                                    ! Clear return value
  100.   OPEN(wScreen)                                  ! Open screen
  101.   SCR:ssMessage = CENTER(sMessage, SIZE(SCR:ssMessage))
  102.   LOOP                                           ! Loop
  103.     ACCEPT                                       !   Get user input
  104.     IF KEYCODE() = EscKey                        !
  105.       sInput = ''                                !
  106.       BREAK                                      !
  107.     .                                            !
  108.     CASE FIELD()                                 !
  109.       OF ?Ok;                  BREAK             !
  110.       OF ?Cancel; sInput = ''; BREAK             !
  111.   . .                                            !
  112.   CLOSE(wScreen)                                 ! Close screen
  113.   RETURN(sInput)                                 ! Return
  114.  
  115.  
  116. !═════════════════════════════════════════════════════════════════════════
  117. !                    Prompt for a yes/no response
  118. !═════════════════════════════════════════════════════════════════════════
  119. ME_Confirm   FUNCTION( sMessage, bbDefault )
  120.  
  121.              ! Return:
  122. bbRetVal     BYTE                                !
  123.  
  124.              ! Screens:
  125. wScreen          SCREEN(7,44),PRE(SCR),CENTER,SHADOW,CUA,TRN,COLOR(112)
  126.                    !dimensions=25,80,25,80
  127.                    ROW(1,1)    STRING('┌─{42}┐')
  128.                    ROW(7,1)    STRING('└─{42}┘')
  129.                                REPEAT(5)
  130.                    ROW(2,1)      STRING('│')
  131.                    ROW(2,44)     STRING('│')
  132.                                .
  133. ssMessage          ROW(3,3)    STRING(@s40),COLOR(112)
  134.                    ROW(5,12)   BUTTON('  &Yes  '),SHADOW,KEY(EnterKey),USE(?Yes),COLOR(23,71,24,31,79)
  135.                      COL(26)   BUTTON('  &No  '),SHADOW,KEY(EnterKey),USE(?No),COLOR(23,71,24,31,79)
  136.                  .
  137.  
  138.   CODE
  139.   bbRetVal = 0                                   ! Clear return value
  140.   IF OMITTED(2) THEN bbDefault = 1.              ! Default to 'Yes'
  141.   OPEN(wScreen)                                  ! Open screen
  142.   SCR:ssMessage = CENTER(sMessage, SIZE(SCR:ssMessage))
  143.   EXECUTE bbDefault+1                            ! Set default choice
  144.     SELECT(?No)                                  !
  145.     SELECT(?Yes)                                 !
  146.   .                                              !
  147.   LOOP                                           ! Loop
  148.     DISPLAY                                      !   Update screen
  149.     ACCEPT                                       !   Get user input
  150.     CASE FIELD()                                 !
  151.       OF ?Yes; bbRetVal = 1; BREAK               !
  152.       OF ?No;  bbRetVal = 0; BREAK               !
  153.   . .                                            ! End loop
  154.   CLOSE(wScreen)                                 ! Close screens
  155.   RETURN(bbRetVal)                               ! Return boolean response
  156.  
  157.